Micron Document
`:top
La commande `*`!Merge`!`* en `F33f`_`[SQL`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Structured_Query_Language]`_`f est une instruction qui permet de mettre à jour ou insérer un ou plusieurs `F33f`_`[tuples`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Tuple]`_`f dans une `F33f`_`[table`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Table_(base_de_données)]`_`f (ou `F33f`_`[vue`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Vue_(base_de_données)]`_`f) d'une `F33f`_`[base de données relationnelle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Base_de_données_relationnelle]`_`f à partir de données sources, selon des conditions. Cette commande a été rajoutée dans le standard SQL:2003, et étendue dans le standard `F33f`_`[SQL:2008`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=SQL:2008]`_`f, et permet d'éviter des combinaisons d’instructions `F33f`_`[Insert`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Insert_(SQL)]`_`f, `*Update`* et `*Delete`* sur la table cible.

>>Contents

• `F0af`_`[Syntaxe`#syntaxe]`_`f
• `F0af`_`[Notes et références`#notes-et-r-f-rences]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f

-─

>>Syntaxe

`B100`F9d9MERGE INTO table_cible T -- table à modifier`f`b
`B100`F9d9 USING données_source S -- Listes des données sources`f`b
`B100`F9d9 ON (Conditions1) -- Condition de correspondance/jointure`f`b
`B100`F9d9 WHEN MATCHED THEN -- Si vrai`f`b
`B100`F9d9 UPDATE SET t.colonne1 = valeur1 [, t.colonne2 = valeur2 ...] ---- Mise à jour`f`b
`B100`F9d9 DELETE WHERE (Conditions2) ---- ou Suppression sous condition`f`b
`B100`F9d9 WHEN NOT MATCHED THEN -- Si faux`f`b
`B100`F9d9 INSERT [ ( liste_colonnes) ] { VALUES ( liste_valeurs) | DEFAULT VALUES } ---- Ajout`f`b

Une `F33f`_`[jointure`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Jointure_(informatique)]`_`f droite externe (`*Right outer join`*) est effectuée entre la cible et la source. Si plusieurs tuples de la source correspondent à un même tuple de la cible alors une erreur est levée. Dans la syntaxe, Conditions1 représente la condition de jointure qui permet de définir si un tuple cible doit être ajouté ou mise à jour (ou supprimée si on est dans le cas de la Conditions2). Cela signifie que si un tuple source correspond selon la condition de jointure à un tuple de la table cible alors les instructions dans `*WHEN MATCHED THEN`* sont effectuées. Si un tuple source ne correspond pas à la condition de jointure alors les instructions dans `*WHEN NOT MATCHED THEN`* sont effectuées.

Les données sources peuvent provenir d'une table, d'une vue ou d'une sous `F33f`_`[requête`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Select_(SQL)]`_`f.

>>Notes et références

• (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Merge (SQL) » (voir la liste des auteurs).

>>Liens externes

• Documentation du Merge pour `F33f`_`[DB2 z/OS`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=IBM_DB2]`_`f
• Documentation du `*`!Merge`!`* d'`F33f`_`[Oracle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Oracle_Database]`_`f 11g R2
• Documentation du `*`!Merge`!`* dans `F33f`_`[SQL Server`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Microsoft_SQL_Server]`_`f 2012

• Portail des bases de données

`c`F0af`_`[↑ Back to top`#top]`_`f`a